home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / ImageCodec.a < prev    next >
Text File  |  1996-05-01  |  12KB  |  355 lines

  1. ;
  2. ;    File:        ImageCodec.a
  3. ;
  4. ;    Contains:    QuickTime Interfaces.
  5. ;
  6. ;    Version:    Technology:    QuickTime 2.1
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__IMAGECODEC__') = 'UNDEFINED' THEN
  19. __IMAGECODEC__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  25.     include 'Quickdraw.a'
  26.     ENDIF
  27.     IF &TYPE('__QDOFFSCREEN__') = 'UNDEFINED' THEN
  28.     include 'QDOffscreen.a'
  29.     ENDIF
  30.     IF &TYPE('__WINDOWS__') = 'UNDEFINED' THEN
  31.     include 'Windows.a'
  32.     ENDIF
  33.     IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN
  34.     include 'ImageCompression.a'
  35.     ENDIF
  36.     IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
  37.     include 'Components.a'
  38.     ENDIF
  39.     IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
  40.     include 'Movies.a'
  41.     ENDIF
  42.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  43. ;     codec component selectors    
  44.  
  45. codecGetCodecInfo                EQU        $00
  46. codecGetCompressionTime            EQU        $01
  47. codecGetMaxCompressionSize        EQU        $02
  48. codecPreCompress                EQU        $03
  49. codecBandCompress                EQU        $04
  50. codecPreDecompress                EQU        $05
  51. codecBandDecompress                EQU        $06
  52. codecCDSequenceBusy                EQU        $07
  53. codecGetCompressedImageSize        EQU        $08
  54. codecGetSimilarity                EQU        $09
  55. codecTrimImage                    EQU        $0A
  56. codecRequestSettings            EQU        $0B
  57. codecGetSettings                EQU        $0C
  58. codecSetSettings                EQU        $0D
  59. codecCDSequenceFlush            EQU        $0E
  60. codecSetTimeCode                EQU        $0F
  61. codecIsImageDescriptionEquivalent EQU    $10
  62. codecNewMemory                    EQU        $11
  63. codecDisposeMemory                EQU        $12
  64. codecHitTestData                EQU        $13
  65. ;     codec selectors 0-127 are reserved by Apple 
  66. ;     codec selectors 128-191 are subtype specific 
  67. ;     codec selectors 192-255 are vendor specific 
  68. ;     codec selectors 256-32767 are available for general use 
  69. ;     negative selectors are reserved by the Component Manager 
  70. ;     codec capabilities flags    
  71.  
  72. codecCanScale                    EQU        $00000001
  73. codecCanMask                    EQU        $00000002
  74. codecCanMatte                    EQU        $00000004
  75. codecCanTransform                EQU        $00000008
  76. codecCanTransferMode            EQU        $00000010
  77. codecCanCopyPrev                EQU        $00000020
  78. codecCanSpool                    EQU        $00000040
  79. codecCanClipVertical            EQU        $00000080
  80. codecCanClipRectangular            EQU        $00000100
  81. codecCanRemapColor                EQU        $00000200
  82. codecCanFastDither                EQU        $00000400
  83. codecCanSrcExtract                EQU        $00000800
  84. codecCanCopyPrevComp            EQU        $00001000
  85. codecCanAsync                    EQU        $00002000
  86. codecCanMakeMask                EQU        $00004000
  87. codecCanShift                    EQU        $00008000
  88. codecCanAsyncWhen                EQU        $00010000
  89. codecCanShieldCursor            EQU        $00020000
  90. codecCanManagePrevBuffer        EQU        $00040000
  91. codecHasVolatileBuffer            EQU        $00080000
  92. codecWantsRegionMask            EQU        $00100000
  93. CodecCapabilities        RECORD 0
  94. flags                     ds.l    1                ; offset: $0 (0)
  95. wantedPixelSize             ds.w    1                ; offset: $4 (4)
  96. extendWidth                 ds.w    1                ; offset: $6 (6)
  97. extendHeight             ds.w    1                ; offset: $8 (8)
  98. bandMin                     ds.w    1                ; offset: $A (10)
  99. bandInc                     ds.w    1                ; offset: $C (12)
  100. pad                         ds.w    1                ; offset: $E (14)
  101. time                     ds.l    1                ; offset: $10 (16)
  102. sizeof                     EQU *                    ; size:   $14 (20)
  103.                         ENDR
  104. ;     codec condition flags    
  105.  
  106. codecConditionFirstBand            EQU        $00000001
  107. codecConditionLastBand            EQU        $00000002
  108. codecConditionFirstFrame        EQU        $00000004
  109. codecConditionNewDepth            EQU        $00000008
  110. codecConditionNewTransform        EQU        $00000010
  111. codecConditionNewSrcRect        EQU        $00000020
  112. codecConditionNewMask            EQU        $00000040
  113. codecConditionNewMatte            EQU        $00000080
  114. codecConditionNewTransferMode    EQU        $00000100
  115. codecConditionNewClut            EQU        $00000200
  116. codecConditionNewAccuracy        EQU        $00000400
  117. codecConditionNewDestination    EQU        $00000800
  118. codecConditionFirstScreen        EQU        $00001000
  119. codecConditionDoCursor            EQU        $00002000
  120. codecConditionCatchUpDiff        EQU        $00004000
  121. codecConditionMaskMayBeChanged    EQU        $00008000
  122. codecConditionCodecChangedMask    EQU        $80000000
  123.  
  124. codecInfoResourceType            EQU        'cdci'                ; codec info resource type 
  125. codecInterfaceVersion            EQU        2                    ; high word returned in component GetVersion 
  126. CDSequenceDataSource    RECORD 0
  127. recordSize                 ds.l    1                ; offset: $0 (0)
  128. next                     ds.l    1                ; offset: $4 (4)
  129. seqID                     ds.l    1                ; offset: $8 (8)
  130. sourceID                 ds.l    1                ; offset: $C (12)
  131. sourceType                 ds.l    1                ; offset: $10 (16)
  132. sourceInputNumber         ds.l    1                ; offset: $14 (20)
  133. dataPtr                     ds.l    1                ; offset: $18 (24)
  134. dataDescription             ds.l    1                ; offset: $1C (28)
  135. changeSeed                 ds.l    1                ; offset: $20 (32)
  136. transferProc             ds.l    1                ; offset: $24 (36)
  137. refCon                     ds.l    1                ; offset: $28 (40)
  138. sizeof                     EQU *                    ; size:   $2C (44)
  139.                         ENDR
  140. ; typedef struct CDSequenceDataSource *    CDSequenceDataSourcePtr
  141.  
  142. CodecCompressParams        RECORD 0
  143. sequenceID                 ds.l    1                ; offset: $0 (0)        ;  precompress,bandcompress 
  144. imageDescription         ds.l    1                ; offset: $4 (4)        ;  precompress,bandcompress 
  145. data                     ds.l    1                ; offset: $8 (8)
  146. bufferSize                 ds.l    1                ; offset: $C (12)
  147. frameNumber                 ds.l    1                ; offset: $10 (16)
  148. startLine                 ds.l    1                ; offset: $14 (20)
  149. stopLine                 ds.l    1                ; offset: $18 (24)
  150. conditionFlags             ds.l    1                ; offset: $1C (28)
  151. callerFlags                 ds.w    1                ; offset: $20 (32)
  152. capabilities             ds.l    1                ; offset: $22 (34)        ;  precompress,bandcompress 
  153. progressProcRecord         ds        ICMProgressProcRecord ; offset: $26 (38)
  154. completionProcRecord     ds        ICMCompletionProcRecord ; offset: $2E (46)
  155. flushProcRecord             ds        ICMFlushProcRecord ; offset: $36 (54)
  156. srcPixMap                 ds        PixMap            ; offset: $3E (62)        ;  precompress,bandcompress 
  157. prevPixMap                 ds        PixMap            ; offset: $70 (112)
  158. spatialQuality             ds.l    1                ; offset: $A2 (162)
  159. temporalQuality             ds.l    1                ; offset: $A6 (166)
  160. similarity                 ds.l    1                ; offset: $AA (170)
  161. dataRateParams             ds.l    1                ; offset: $AE (174)
  162. reserved                 ds.l    1                ; offset: $B2 (178)
  163. ;  The following fields only exist for QuickTime 2.1 and greater 
  164. majorSourceChangeSeed     ds.w    1                ; offset: $B6 (182)
  165. minorSourceChangeSeed     ds.w    1                ; offset: $B8 (184)
  166. sourceData                 ds.l    1                ; offset: $BA (186)
  167. sizeof                     EQU *                    ; size:   $BE (190)
  168.                         ENDR
  169. CodecDecompressParams    RECORD 0
  170. sequenceID                 ds.l    1                ; offset: $0 (0)        ;  predecompress,banddecompress 
  171. imageDescription         ds.l    1                ; offset: $4 (4)        ;  predecompress,banddecompress 
  172. data                     ds.l    1                ; offset: $8 (8)
  173. bufferSize                 ds.l    1                ; offset: $C (12)
  174. frameNumber                 ds.l    1                ; offset: $10 (16)
  175. startLine                 ds.l    1                ; offset: $14 (20)
  176. stopLine                 ds.l    1                ; offset: $18 (24)
  177. conditionFlags             ds.l    1                ; offset: $1C (28)
  178. callerFlags                 ds.w    1                ; offset: $20 (32)
  179. capabilities             ds.l    1                ; offset: $22 (34)        ;  predecompress,banddecompress 
  180. progressProcRecord         ds        ICMProgressProcRecord ; offset: $26 (38)
  181. completionProcRecord     ds        ICMCompletionProcRecord ; offset: $2E (46)
  182. dataProcRecord             ds        ICMDataProcRecord ; offset: $36 (54)
  183. port                     ds.l    1                ; offset: $3E (62)        ;  predecompress,banddecompress 
  184. dstPixMap                 ds        PixMap            ; offset: $42 (66)        ;  predecompress,banddecompress 
  185. maskBits                 ds.l    1                ; offset: $74 (116)
  186. mattePixMap                 ds.l    1                ; offset: $78 (120)
  187. srcRect                     ds        Rect            ; offset: $7C (124)        ;  predecompress,banddecompress 
  188. matrix                     ds.l    1                ; offset: $84 (132)        ;  predecompress,banddecompress 
  189. accuracy                 ds.l    1                ; offset: $88 (136)        ;  predecompress,banddecompress 
  190. transferMode             ds.w    1                ; offset: $8C (140)        ;  predecompress,banddecompress 
  191. frameTime                 ds.l    1                ; offset: $8E (142)        ;  banddecompress 
  192. reserved                 ds.l    1                ; offset: $92 (146) <-- really an array of length one
  193. ;  The following fields only exist for QuickTime 2.0 and greater 
  194. matrixFlags                 ds.b    1                ; offset: $96 (150)        ;  high bit set if 2x resize 
  195. matrixType                 ds.b    1                ; offset: $97 (151)
  196. dstRect                     ds        Rect            ; offset: $98 (152)        ;  only valid for simple transforms 
  197. ;  The following fields only exist for QuickTime 2.1 and greater 
  198. majorSourceChangeSeed     ds.w    1                ; offset: $A0 (160)
  199. minorSourceChangeSeed     ds.w    1                ; offset: $A2 (162)
  200. sourceData                 ds.l    1                ; offset: $A4 (164)
  201. maskRegion                 ds.l    1                ; offset: $A8 (168)
  202. sizeof                     EQU *                    ; size:   $AC (172)
  203.                         ENDR
  204.  
  205. matrixFlagScale2x                EQU        $00000080
  206. matrixFlagScale1x                EQU        $00000040
  207. matrixFlagScaleHalf                EQU        $00000020
  208. ;
  209. ; pascal ComponentResult CDGetCodecInfo(Handle storage, CodecInfo *info)
  210. ;
  211.     IF GENERATINGCFM THEN
  212.         IMPORT_CFM_FUNCTION CDGetCodecInfo
  213.     ENDIF
  214.  
  215. ;
  216. ; pascal ComponentResult CDGetCompressionTime(Handle storage, PixMapHandle src, const Rect *srcRect, short depth, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *time)
  217. ;
  218.     IF GENERATINGCFM THEN
  219.         IMPORT_CFM_FUNCTION CDGetCompressionTime
  220.     ENDIF
  221.  
  222. ;
  223. ; pascal ComponentResult CDGetMaxCompressionSize(Handle storage, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, long *size)
  224. ;
  225.     IF GENERATINGCFM THEN
  226.         IMPORT_CFM_FUNCTION CDGetMaxCompressionSize
  227.     ENDIF
  228.  
  229. ;
  230. ; pascal ComponentResult CDPreCompress(Handle storage, CodecCompressParams *params)
  231. ;
  232.     IF GENERATINGCFM THEN
  233.         IMPORT_CFM_FUNCTION CDPreCompress
  234.     ENDIF
  235.  
  236. ;
  237. ; pascal ComponentResult CDBandCompress(Handle storage, CodecCompressParams *params)
  238. ;
  239.     IF GENERATINGCFM THEN
  240.         IMPORT_CFM_FUNCTION CDBandCompress
  241.     ENDIF
  242.  
  243. ;
  244. ; pascal ComponentResult CDPreDecompress(Handle storage, CodecDecompressParams *params)
  245. ;
  246.     IF GENERATINGCFM THEN
  247.         IMPORT_CFM_FUNCTION CDPreDecompress
  248.     ENDIF
  249.  
  250. ;
  251. ; pascal ComponentResult CDBandDecompress(Handle storage, CodecDecompressParams *params)
  252. ;
  253.     IF GENERATINGCFM THEN
  254.         IMPORT_CFM_FUNCTION CDBandDecompress
  255.     ENDIF
  256.  
  257. ;
  258. ; pascal ComponentResult CDCodecBusy(Handle storage, ImageSequence seq)
  259. ;
  260.     IF GENERATINGCFM THEN
  261.         IMPORT_CFM_FUNCTION CDCodecBusy
  262.     ENDIF
  263.  
  264. ;
  265. ; pascal ComponentResult CDGetCompressedImageSize(Handle storage, ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, long *dataSize)
  266. ;
  267.     IF GENERATINGCFM THEN
  268.         IMPORT_CFM_FUNCTION CDGetCompressedImageSize
  269.     ENDIF
  270.  
  271. ;
  272. ; pascal ComponentResult CDGetSimilarity(Handle storage, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle desc, Ptr data, Fixed *similarity)
  273. ;
  274.     IF GENERATINGCFM THEN
  275.         IMPORT_CFM_FUNCTION CDGetSimilarity
  276.     ENDIF
  277.  
  278. ;
  279. ; pascal ComponentResult CDTrimImage(Handle storage, ImageDescriptionHandle Desc, Ptr inData, long inBufferSize, ICMDataProcRecordPtr dataProc, Ptr outData, long outBufferSize, ICMFlushProcRecordPtr flushProc, Rect *trimRect, ICMProgressProcRecordPtr progressProc)
  280. ;
  281.     IF GENERATINGCFM THEN
  282.         IMPORT_CFM_FUNCTION CDTrimImage
  283.     ENDIF
  284.  
  285.     ENDIF
  286.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  287. ;
  288. ; pascal ComponentResult CDRequestSettings(Handle storage, Handle settings, Rect *rp, ModalFilterUPP filterProc)
  289. ;
  290.     IF GENERATINGCFM THEN
  291.         IMPORT_CFM_FUNCTION CDRequestSettings
  292.     ENDIF
  293.  
  294.     ENDIF
  295.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  296. ;
  297. ; pascal ComponentResult CDGetSettings(Handle storage, Handle settings)
  298. ;
  299.     IF GENERATINGCFM THEN
  300.         IMPORT_CFM_FUNCTION CDGetSettings
  301.     ENDIF
  302.  
  303. ;
  304. ; pascal ComponentResult CDSetSettings(Handle storage, Handle settings)
  305. ;
  306.     IF GENERATINGCFM THEN
  307.         IMPORT_CFM_FUNCTION CDSetSettings
  308.     ENDIF
  309.  
  310. ;
  311. ; pascal ComponentResult CDCodecFlush(Handle storage)
  312. ;
  313.     IF GENERATINGCFM THEN
  314.         IMPORT_CFM_FUNCTION CDCodecFlush
  315.     ENDIF
  316.  
  317. ;
  318. ; pascal ComponentResult CDCodecSetTimeCode(Handle storage, void *timeCodeFormat, void *timeCodeTime)
  319. ;
  320.     IF GENERATINGCFM THEN
  321.         IMPORT_CFM_FUNCTION CDCodecSetTimeCode
  322.     ENDIF
  323.  
  324. ;
  325. ; pascal ComponentResult CDCodecIsImageDescriptionEquivalent(Handle storage, ImageDescriptionHandle newDesc, Boolean *equivalent)
  326. ;
  327.     IF GENERATINGCFM THEN
  328.         IMPORT_CFM_FUNCTION CDCodecIsImageDescriptionEquivalent
  329.     ENDIF
  330.  
  331. ;
  332. ; pascal ComponentResult CDCodecNewMemory(Handle storage, Ptr *data, Size dataSize, long dataUse, ICMMemoryDisposedUPP memoryGoneProc, void *refCon)
  333. ;
  334.     IF GENERATINGCFM THEN
  335.         IMPORT_CFM_FUNCTION CDCodecNewMemory
  336.     ENDIF
  337.  
  338. ;
  339. ; pascal ComponentResult CDCodecDisposeMemory(Handle storage, Ptr data)
  340. ;
  341.     IF GENERATINGCFM THEN
  342.         IMPORT_CFM_FUNCTION CDCodecDisposeMemory
  343.     ENDIF
  344.  
  345. ;
  346. ; pascal ComponentResult CDCodecHitTestData(Handle storage, ImageDescriptionHandle desc, void *data, Size dataSize, Point where, Boolean *hit)
  347. ;
  348.     IF GENERATINGCFM THEN
  349.         IMPORT_CFM_FUNCTION CDCodecHitTestData
  350.     ENDIF
  351.  
  352.     ENDIF
  353.     ENDIF ; __IMAGECODEC__ 
  354.  
  355.